7-Machine learning

Thibaut FABACHER

GMRC

Techniques prédictives/Apprentissage machine

Machine Learning

Machine Learning

Machine Learning

  • Domaine de l’intelligence artificielle

  • Consiste à entraîner des modèles informatiques à effectuer des tâches sans avoir été explicitement programmés pour les accomplir

  • Les modèles peuvent s’améliorer au fil du temps en apprenant à partir de données

  • Exemple : Traduction automatique Reconnaissance vocale…

Différence Stat / Machine learning

  • décrire et comprendre les phénomènes à partir de données

  • hypothetico-déductive (part d’hypothèses et utilise des tests statistiques pour les vérifier)

  • données souvent de taille limitée et structurées

  • modèles simples et faciles à comprendre

  • prédire les résultats futurs à partir de données passées

  • inductive (part de données et essaie de déduire les règles sous-jacentes)

  • peut être utilisé avec des données de grande taille et non structurées

  • modèles complexes et difficiles à interpréter (réseaux de neurones, arbres de décision)

Apprentissage supervisé

  • modèle est entraîné sur un jeu de données annotées
  • Le jeu de données contient des exemples d’entrée et de sortie souhaités
  • L’objectif: généraliser apprentissage à partir de ces exemples pour prédire la sortie correcte pour de nouvelles entrées

Apprentissage supervisé

\[\hat{y} = f(x, \theta)\]

\(x\) est l’entrée, \(\theta\) sont les paramètres du modèle et \(\hat{y}\) est la valeur prédite par le modèle pour l’entrée \(x\).

Objectifs : Trouver les valeurs optimales de \(\theta\) qui minimisent l’erreur entre les valeurs prédites et valeurs réelles.

  • Fonction de coût avec optimisation

Apprentissage non supervisé

Apprentissage non supervisé

  • Découvrir une structure au sein d’un ensemble d’individus caractérisés par des covariables X

  • Label est inconnu

Apprentissage non supervisé

\[\hat{y} = f(x, \theta)\]

\(x\) est l’entrée, \(\theta\) sont les paramètres du modèle et \(\hat{y}\) est la valeur prédite par le modèle pour l’entrée \(x\).

Objectifs : trouver des structures ou des patterns dans les données qui peuvent être utilisés pour effectuer des tâches utiles

Les paramètres du modèle sont mis à jour en utilisant une fonction de coût et une méthode d’optimisation afin de trouver des structures ou des patterns dans les données

Supervisé / Non supervisé

Supervisé / Non supervisé

Apprentissage Actif

Apprentissage par renforcement

Transfer learning

Entrainement d’un modèle

Exemple sur un regression linéaire :

\[Y=X\cdot\theta + \epsilon\]

Solution dans le cadre d’une régression linéaire

On cherche \(\hat{\theta} = \binom{\hat{a}}{\hat{b}}\)\(\hat{y} = \hat{a}\cdot x+\hat{b}\) pour que \(\hat{y}\) soit le plus proche de \(y\)

Les données sont fausses ?

Les données sont fausses ?

Comment on fait pour entrainer :

On trace une ligne, on mesure la qualité de la ligne tracé, on modifie la ligne pour améliorer ça qualité et on répète

Fonctions de coût

Fonction a minimiser pour trouver la meilleure solution

  1. Erreur quadratique moyenne (MSE)
  • Utilisée pour les tâches de régression

  • Formule: \[MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2\]

  • Simple à calculer et à interpréter, mais sensible aux outliers et peu robuste face à la skewness des données

  1. Erreur absolue moyenne (MAE)
  • Utilisée pour les tâches de régression

  • Formule: \[MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|\]

  • Moins sensible aux outliers que le MSE, mais moins intuitive à interpréter

  1. Erreur quadratique moyenne de racine (RMSE)
  • Utilisée pour les tâches de régression

  • Formule: \[RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}\]

  • racine carrée de l’erreur quadratique moyenne (MSE)

  1. Erreur de classification
  • Utilisée pour les tâches de classification

  • Formule: \[Err_{class} = \frac{n_{erreurs}}{n}\]

  • Simple à calculer, mais ne prend pas en compte la probabilité des prédictions

Exemple sur données fictives

Entrainement d’un modèle de régression linéaire

fit1 <- lm(y ~ x, data = BDD)

summary(fit1)

Call:
lm(formula = y ~ x, data = BDD)

Residuals:
    Min      1Q  Median      3Q     Max 
-12.095  -5.330  -0.468   3.252  44.732 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  50.6738     0.7373  68.733  < 2e-16 ***
x             1.3232     0.1666   7.944 3.33e-12 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 7.354 on 98 degrees of freedom
Multiple R-squared:  0.3917,    Adjusted R-squared:  0.3855 
F-statistic: 63.11 on 1 and 98 DF,  p-value: 3.334e-12

Calcul de la MSE

y_pred <- predict(fit1, BDD)
head(y_pred)
       1        2        3        4        5        6 
55.43221 59.19289 44.80791 39.36183 58.99862 49.40447 
mse <- mean((BDD$y - y_pred)^2)

print(mse)
[1] 52.99666
p2<-BDD %>% ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+
  geom_smooth( method = lm, formula = y ~ x, se = FALSE)
p2

Entrainement d’un modèle de régression linéaire avec effet quadratique

fit2 <- lm(y ~ poly(x,3), data = BDD)

summary(fit2)

Call:
lm(formula = y ~ poly(x, 3), data = BDD)

Residuals:
    Min      1Q  Median      3Q     Max 
-9.3764 -3.7573 -0.1977  3.2481 11.1131 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   51.091      0.459 111.310  < 2e-16 ***
poly(x, 3)1   58.421      4.590  12.728  < 2e-16 ***
poly(x, 3)2   38.220      4.590   8.327 5.75e-13 ***
poly(x, 3)3   42.619      4.590   9.285 5.11e-15 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.59 on 96 degrees of freedom
Multiple R-squared:  0.7679,    Adjusted R-squared:  0.7606 
F-statistic: 105.9 on 3 and 96 DF,  p-value: < 2.2e-16

Calcul de la MSE

y_pred <- predict(fit2, BDD)
mse <- mean((BDD$y - y_pred)^2)

print(mse)
[1] 20.22525
p2<-BDD %>% ggplot(aes(x=x,y=y))+geom_jitter()+theme_light()+
  geom_smooth( method = lm, formula = y ~poly(x,3), se = FALSE)
p2

Classification binaire

\[y_i \in {0, 1}\]

\[\hat{y} = f(X)\]

Fonction de seuil nécessaire pour revenir sur 0,1

ex : \(\hat{y} \geq 0.5\) classe 1 et \(\hat{y} < 0.5\) classe 0

évaluation de l’algo par \[y_i \neq \hat{y}_i\]

Mesure de performance pour un classifieur binaire

Tableau de contingence

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN

Sensibilité/rappel

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN
  • \[\text{Sensibilité} = \frac{TP}{TP + FN}\]

  • détecter correctement les exemples positifs

  • utiles quand exemples positifs sont rares

Spécificité

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN
  • \[\text{Spécificité} = \frac{TN}{TN + FP}\]

  • détecter correctement les exemples négatifs

Précision / VPP

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN
  • \[\text{Précision} = \frac{TP}{TP + FP}\]

  • prédire correctement la classe positive

VPN

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN
  • \[\text{VPN} = \frac{TN}{TN + FN}\]

  • prédire correctement la classe négative

Accuracy / taux de bonnes réponses

y = 1 y = 0
y_pred = 1 TP FP
y_pred = 0 FN TN
  • \[\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}\]

  • prédire correctement la classe de chaque exemple

  • utile lorsque les classes sont équilibrées

Combinaison d’indicateur

Courbe ROC

  • performance du classifieur en fonction du seuil de décision

  • sensibilité et spécificité à chaque seuil

Courbe ROC

  • AUC : aire sous la courbe

  • Mesure agrégée de performance

  • AUC = 1 modèle parfait

  • AUC = 0,5 modèle équivalent à choisir au hasard

AUPRC

  • Average Precision recall Curve

  • précision et rappel

  • Mieux pour les classifications non équilibrées

F1 Score

\[\text{F1 Score} = 2\times\frac{\text{Précision}\times\text{Sensibilité}}{\text{Précision}+\text{Sensibilité}}\]

Le machine learning en pratique

Exemple sur R

Problématiques du machine learning

Sur et sous apprentissage

Principes d’entrainement et de validation

  • Séparation des données en jeu d’entrainement et de test

Cross validation

Validation croisée, itérative avec brassage des données